// BIG TUTO - SDL 2.0
// Chapitre 3 (Ouvrir une fenêtre ) 
// main.c

/* Le voilà enfin, notre main !! Comme vous pourrez le voir, pour l'instant, il est très minimaliste,
   mais c'est normal, puisqu'on veut simplement ouvrir une fenêtre ! Cependant, il contient déjà  
   l'ossature de notre jeu. En effet, d'abord on initialise la SDL 2 en appelant la fonction init()
   qui prend comme argument le nom du programme (à afficher en haut de la fenêtre), on prévoit le
   nettoyage à la sortie (cleanup) pour libérer la mémoire et quitter la SDL 2, et puis on passe à
   notre boucle principale où on teste l'état du clavier avec getInput() puis on affiche (ici un 
   écran noir...) et enfin, on laisse respirer le processeur (pour éviter de prendre 100% de ses 
   ressources) et pour bloquer l'affichage à 60 images/seconde, ce qui est très fluide pour un jeu
   vidéo ! */

#include "main.h"

int main( int argc, char *argv[ ] )
{
    unsigned int frameLimit = SDL_GetTicks() + 16;
    int go;

    // Initialisation de la SDL dans une fonction séparée (voir fonction init())
    init("Rabidja - SDL 2.0");

    // Appelle la fonction cleanup à la fin du programme
    atexit(cleanup);

    go = 1;


    // Boucle infinie, principale, du jeu

    while (go == 1)
    {

        /* On vérifie l'état des entrées (clavier puis plus tard le joystick */
        getInput();

        /* On affiche tout */
        draw();

        /* Gestion des 60 fps ( 60 images pas seconde : soit 1s ->1000ms/60 = 16.6 -> 16
        On doit donc attendre 16 ms entre chaque image (frame) */
        //delay(frameLimit);
		delay(frameLimit);
        frameLimit = SDL_GetTicks() + 16;

    }

    /* Exit */
    exit(0);

}


